/*
 * @Description  : 
 * @Author       : 系统生成
 * @Date         : 2023-06-16 10:21:23
 * @LastEditTime : 2023-06-16 10:21:23
 * @LastEditors  : 系统生成
 * @FilePath     :
 */
// 处理dialog句柄变量
if (!labelPrintCustomDialog) {
    var labelPrintCustomDialog;
}

(function (_self, factory) {
    var nameSpace = 'button_16868820839233345';
    if (!window[nameSpace] && typeof factory === 'function') {
        var Builder = factory();
        window[nameSpace] = {
            initBtn: {}
        };
        /**
         * 初始化方法
         */
        window[nameSpace].init = function (el, options) {
            var identification = Math.floor(Math.round() * 10000000000).toString();
            window[nameSpace].initBtn[identification] = new Builder(el, options, _self, identification);
        }
    }
})(window, function () {
    /**
     * 获取顶层window对象
     */
    var _targetWindow = window.getCtpTop ? window.getCtpTop() : window.getA8Top()

    /**
     * js,css文件加载方法
     */
    var dynamicLoading = {
        css: function (path, name, callBk) {
            if (!path || path.length === 0) {
                throw new Error('argument "path" is required !');
            }
            var head = document.getElementsByTagName('head')[0];
            var link = document.createElement('link');
            link.href = path;
            link.rel = 'stylesheet';
            link.type = 'text/css';
            link.setAttribute('data-name', name);
            link.onload = function () {
                callBk();
            }
            head.appendChild(link);
        },
        insertCss: function (innerTexts, name) {
            var head = document.getElementsByTagName('head')[0];
            var style = document.createElement('style');
            style.type = 'text/css';
            style.setAttribute('data-name', name);
            try {
                style.appendChild(document.createTextNode(innerTexts));
            } catch (ex) {
                style.styleSheet.cssText = innerTexts;//针对IE
            }
            head.appendChild(style);
        },
        checkCss: function (name) {
            var styleList = document.getElementsByTagName('style');
            for (var i = 0; i < styleList.length; i++) {
                if (styleList[i].getAttribute('data-name') === name) return true;
            }
            return false;
        },
        js: function (path, callBk) {
            if (!path || path.length === 0) {
                throw new Error('argument "path" is required !');
            }
            var head = document.getElementsByTagName('head')[0];
            var script = document.createElement('script');
            script.src = path;
            script.type = 'text/javascript';
            script.onload = function () {
                callBk();
            }
            head.appendChild(script);
        },
        checkJs: function (name) {
            var scriptList = document.getElementsByTagName('script');
            for (var i = 0; i < scriptList.length; i++) {
                if (scriptList[i].getAttribute('data-name') === name) return true;
            }
            return false;
        },
    }

    /**
     * 浏览器
     */
    function myBrowser() {
        var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
        var isOpera = userAgent.indexOf("Opera") > -1;
        if (isOpera) { //判断是否Opera浏览器
            return "Opera"
        }
        ;
        if (userAgent.indexOf("Firefox") > -1) { //判断是否Firefox浏览器
            return "FF";
        }
        ;
        if (userAgent.indexOf("Chrome") > -1) {
            return "Chrome";
        }
        ;
        if (userAgent.indexOf("Safari") > -1) { //判断是否Safari浏览器
            return "Safari";
        }
        ;
        if (userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera) { //判断是否IE浏览器
            return "IE";
        }
        ;
    }

    /**
     * 定义标签打印按钮的构造函数
     * @param {*} options
     * @param {*} _self
     */
    function labelPrintingBtn(el, options, _self, identification) {
        var self = this;
        self.window_self = _self;
        self.el = el;
        self.identification = identification;
        // 解析传进来的数据
        self.initParams(options);
        // 处理挂载
        self.initBtn(el);
        // 销毁自己
        self.beforeDestroy = function () {
            self = null;
        }
    }

    /**
     * 构造函数的原型方法
     */
    labelPrintingBtn.prototype = {
        columnId: '',
        initParams: function (options) {
            var that = this;
            this.place = options.place;
            this.rowData = options.rowData;
            this.data = options.data;
            this.columnId = options.columnId;

            //临时
            if (this.rowData) {
                if (!window[this.rowData.id]) {
                    window[this.rowData.id] = {};
                }

                this.proit = window[this.rowData.id];
                this.proit.callback = function (cb) {
                    that.implementClick(options.rowData);
                    cb && cb(false);
                }
            }
        },
        initBtn: function (el) {
            /**
             * 挂载dom初始化处理
             */
            var innerTexts = '.labelPrintingBtnHandler {' +
                'background-color: rgba(0,0,0,0);' +
                'font-family: "Ping Fang SC", "Microsoft YaHei", Arial, Helvetica, sans-serif, "SimSun";' +
                'cursor: pointer;' +
                'white-space : nowrap;' +
                'border: 0;' +
                'overflow: hidden;' +
                'text-overflow: ellipsis;' +
                '}' +
                '.labelPrintingBtnBox { box-sizing: border-box; cursor: pointer; outline: none; font-family: inherit; white-space: nowrap;display: inline-block; margin-top: 5px; vertical-align: middle; margin-right: 5px;' +
                ' background-color: #fff; border: 1px solid #d4d4d4; color: #666;font-size: 14px; line-height: 28px; border-radius: 15px; height: 30px;}' +
                '.labelPrintingBtnBox:hover{ border-color: #1f85ec; }' +
                '.labelPrintingBtnRow{color: #1f85ec;}' +
                '.labelPrintingBtnRow:hover{color : #479bf3}' +
                '.labelPrintingBtnLi{color : #333}' +
                '.labelPrintingBtnLi:hover{color : #fff}';
            if (!dynamicLoading.checkCss('labelPrintingBtn')) {
                dynamicLoading.insertCss(innerTexts, 'labelPrintingBtn');
            }
            // 挂载dom
            this.appendDom(el);
        },
        appendDom: function (el) {
            var self = this;
            var labelPrint = document.createElement('div'), labelPrintToolbar, labelPrintIcon;
            // 对代码片段进行配置
            el.appendChild(labelPrint);
            // 根据不同位置渲染按钮
            switch (this.place) {
                case 'toolbar':
                    labelPrint.parentNode.setAttribute('class', 'labelPrintingBtnBox');
                    labelPrint.style.padding = '0 14px';
                    // 加入icon
                    labelPrintIcon = document.createElement('i');
                    labelPrintIcon.setAttribute('class', 'CAP cap-icon-dayin');
                    labelPrintIcon.style.color = '#C3AF1C';
                    labelPrint.appendChild(labelPrintIcon);
                    // 加入name信息
                    labelPrintToolbar = document.createElement('span');
                    labelPrintToolbar.innerHTML = this.data && this.data.name ? this.data.name : '';
                    labelPrintToolbar.style.paddingLeft = '3px';
                    labelPrint.appendChild(labelPrintToolbar);
                    break;
                case 'li':
                    labelPrint.innerHTML = this.data && this.data.name ? this.data.name : '';
                    labelPrint.setAttribute('class', 'labelPrintingBtnLi labelPrintingBtnHandler')
                    break;
                case 'row':
                    labelPrint.innerHTML = this.data && this.data.name ? this.data.name : '';
                    labelPrint.setAttribute('class', 'labelPrintingBtnRow labelPrintingBtnHandler')
                    //隐藏当前按钮
                    labelPrint.parentNode.hidden = true;
                    break;
                default:
            }
            labelPrint.onclick = function () {
                switch (self.place) {
                    case 'toolbar':
                        // 点击执行对应的操作
                        self.implementClick();
                        break;
                    case 'li':
                    case 'row':
                        // 点击执行对应的操作
                        self.implementClick(self.rowData);
                        break;
                    default:
                }

            }
            // 阻止数据污染
            labelPrint.parentNode.onclick = function (e) {
                e.stopPropagation();
            }
        },
        // 执行点击事件
        implementClick: function () {

            var leaderDialog = getA8Top().$.dialog({
                title:"请选择导出数据",
                transParams:{},
                url: "/seeyon/exportExcelCtrl.do?method=leader",
                width: 350,
                height: 400,
                isDrag:false,
                buttons: [{
                    id: "btnok",
                    text: "确定",
                    handler: function() {
                        var returnValue = leaderDialog.getReturnValue();

                        if (returnValue.length > 0){
                            var leader = "";
                            for (let i = 0; i < returnValue.length; i++) {
                                leader += returnValue[i].id + ",";
                            }
                            leader = leader.substring(0, leader.length - 1);
                            //创建一个iframe，src为下载路径
                            var iframe = document.createElement("iframe");
                            iframe.style.display = "none";
                            iframe.src = "/seeyon/exportExcelCtrl.do?method=exportExcel&leader="+ leader;
                            // 将iframe添加到DOM中
                            document.body.appendChild(iframe);
                        }

                        leaderDialog.close();
                    }
                },
                    {
                        id:"btncancel",
                        text: "取消",
                        handler: function() {
                            leaderDialog.close();
                        }
                    }]
            });

            // // 获取数据
            // var trst = extendApi.getChooseLineData();
            // // 数据id集合
            // var ids = [];
            // for (var index = 0; index < trst.length; index++) {
            //     ids[index]=trst[index].id
            // }
            // // 增加页面等待
            // var proce = $.progressBar();
            // $.ajax({
            //     url:"/seeyon/tecManagermentController.do?method=pushMessage",
            //     type:"post",
            //     dataType:"text",
            //     data:{
            //         'ids':JSON.stringify(ids)
            //     },
            //     success: function(data){
            //         var json = JSON.parse(data);
            //         var mes = "";
            //         var data = json.data;
            //         var code = json.code;
            //         if (code == 200){
            //             mes = json.message;
            //             var infor = $.infor(mes);
            //             proce.close();// 处理结束关闭等待
            //         } else {
            //             for (var i = 0; data.length > i; i++) {
            //                 mes += ("<h4>"+ data[i] + "</h4>" + "<br>")
            //             }
            //             var infor = $.infor(mes);
            //             debugger;
            //             proce.close();// 处理结束关闭等待
            //         }
            //     },
            //     error: function (data){
            //         var infor = $.infor("程序执行错误，请联系管理员！");
            //         debugger;
            //         proce.close(); // 处理结束关闭等待
            //     }
            // });
            // var self = this;
            // if (myBrowser() === 'FF') {
            //     if (window.top.$ && window.top.$.alert) {
            //         window.top.$.alert(window.top.$.i18n('cap.template.labelPrint.noPrompt'));
            //     } else {
            //         alert('此浏览器暂不支持！');
            //     }
            // }



        },
        /**
         * 设置iframe盒子样式
         */
        setIframeStyle() {
            var iframeBox = _targetWindow.document.getElementById('cap4ReferenceDialog_main');
            iframeBox.style.padding = "0 15px";
        }
    };
    /**
     * 返回值
     */
    return labelPrintingBtn;
});
